package com.hospital.workstation.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.hospital.common.core.domain.R;
import com.hospital.workstation.domain.ElectronicManagerInfo;
import com.hospital.workstation.domain.vo.ElectronicManagerInfoVo;
import com.hospital.workstation.domain.bo.ElectronicManagerInfoBo;
import com.hospital.common.core.page.TableDataInfo;
import com.hospital.common.core.domain.PageQuery;
import com.hospital.workstation.domain.vo.ElectronicMonitorOneInfoVo;
import com.hospital.workstation.domain.vo.ElectronicMonitorTwoInfoVo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.List;

/**
 * 电子监测管理信息Service接口
 *
 * @author whb
 * @date 2024-04-30
 */
public interface IElectronicManagerInfoService {

    /**
     * 查询电子监测管理信息（A表）
     */
    ElectronicMonitorOneInfoVo queryById(Long id);

    /**
     * 查询电子监测管理信息列表
     */
    TableDataInfo<ElectronicManagerInfoVo> queryPageList(ElectronicManagerInfoBo bo, PageQuery pageQuery);

    /**
     * 查询电子监测管理信息列表
     */
    List<ElectronicManagerInfoVo> queryList(ElectronicManagerInfoBo bo);

    /**
     * 新增电子监测管理信息
     */
    R<Void> insertByBo(ElectronicManagerInfoBo bo);

    /**
     * 修改电子监测管理信息
     */
    Boolean updateByBo(ElectronicManagerInfoBo bo);

    /**
     * 校验并批量删除电子监测管理信息信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 删除（A表）
     *
     * @param id 监测管理主键id
     * @return
     */
    R<Void> deleteById(Long id);

    /**
     * 查询管理信息详细信息（B表）
     *
     * @param id 主键
     * @return
     */
    ElectronicMonitorTwoInfoVo queryMonitorTwoInfoById(Long id);

    /**
     * 删除（B表）
     *
     * @param id 监测管理主键id
     * @return
     */
    R<Void> deleteById2(Long id);

    /**
     * 导出json
     *
     * @param response
     * @param ids      A表id集合
     */
    void exportJson(HttpServletResponse response, Long[] ids) throws IOException;
}
